package com.sgj.lock;

import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.CopyOnWriteArraySet;

/**
 * Set线程不安全问题解决方案
 * @Author: Guoji Shen
 * @Date: 2021/8/5 13:39
 */
public class SetThreadDemo {

    public static void main(String[] args) {

        // 创建一个HashSet
        // Set<String> set = new HashSet<>();

        // JUC提供的解决方案  CopyOnWriteArraySet
        Set<String> set = new CopyOnWriteArraySet<>();

        for (int i = 0; i < 30; i++) {
            new Thread(() -> {
                // 向集合添加内容
                set.add(UUID.randomUUID().toString().substring(0, 8));
                System.out.println(set);
            }, String.valueOf(i)).start();
        }
    }
}